Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update beaker setup dependencies with linchpin #1346

Merged
merged 2 commits into from
Dec 9, 2019

Conversation

samvarankashyap
Copy link
Contributor

Install beaker dependencies from beaker repo

@adl-bot
Copy link

adl-bot commented Sep 25, 2019

@samvarankashyap
Copy link
Contributor Author

[test]

@adl-bot
Copy link

adl-bot commented Sep 25, 2019

include_tasks: "setup_dnf_deps.yml"
when: setup_providers | length == 0 and ansible_distribution == 'Fedora'

- name: Install os-specific depdendencies:: CentOS/RHEL
- name: "Install os-specific depdendencies CentOS/RHEL"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you sure about the quotes you added?
Another thing you have typo there depdendencies -> dependencies

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adding special characters like "::" causes failures in ansible.
The is the reason I have added quotes to name. Else it is not necessary.
I will fix typo

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sure, I understand that.
But you removed "::" from the name, therefore you don't need quotes.

  1. Remove "::" and you don't need quotes.
  2. Keep "::" and add quotes.

And typo is not fixed yet.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why even have the double colon?

@@ -10,11 +10,11 @@
loop_control:
loop_var: indv_prov

- name: Install os-specific depdendencies:: Fedora
- name: "Install os-specific depdendencies Fedora"

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Are you sure about the quotes you added?
Another thing you have typo there depdendencies -> dependencies

- 'bottle'
loop_control:
loop_var: bkr_pkg
name: ['git+https://github.com/beaker-project/beaker.git@develop#subdirectory=Client/', 'python-krbV', 'bottle']

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I can see that you are trying to get beaker from Develop branch. Develop branch contains Beaker 27.
I replaced python-krbV with python-gssapi

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I could not find a tag specific to beaker client that is the reason I have used to develop branch code.
Further, does the above mean python-krbV is no longer needed?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Beaker client doesn't require python-krbV anymore. python-gssapi is sufficient for beaker client / common.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • I think you should consume our tags.. Not blindly install develop

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I completely agree with you.
However, could share the link/tag which contains python3 patch
the GitHub repo seems confusing.
Thank you.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hello @samvarankashyap.
Python3 patch is not tagged (yet). I'm working on it, we have to finish Beaker 27 changes. Then I can provide you tag. I'm about to release 26.6. And we are close to 27 - We are performing tests in stage.

@samvarankashyap samvarankashyap force-pushed the update_beaker_dep branch 2 times, most recently from e64d4dc to 2ec1075 Compare September 26, 2019 15:16
@adl-bot
Copy link

adl-bot commented Sep 26, 2019

@adl-bot
Copy link

adl-bot commented Sep 26, 2019

@adl-bot
Copy link

adl-bot commented Sep 26, 2019

@samvarankashyap
Copy link
Contributor Author

@14rcole Needs review

@Dannyb48
Copy link
Contributor

Can we push this out to 1.9.0 release? I ran into an issue manually testing the beaker-client on github locally in a virtualenv. The gssapi caused issues with the paramiko version I was using. I just want to spend time from the carbon side make sure this works.

@samvarankashyap samvarankashyap modified the milestones: v1.8.2, v1.9.0 Sep 26, 2019
@StykMartin
Copy link

Are you in hurry with this patch?
When Beaker 27.0 will be released I will also push changes to currently unmaintained PyPI.

I think I can help you guys to make this clean and don't install mess into client machines

@samvarankashyap
Copy link
Contributor Author

@StykMartin :
We are planning to add the patch for the next release which is due October 28th.
quick question is there any tentative date for beaker 27 release?
Thank you

@StykMartin
Copy link

@samvarankashyap :
Our release is blocked right now by testing performed in a staging environment.
I hope we can manage it within a month. But hard to say.
Right now one team is doing testing and they didn't provide a new status. I will try to reach them if they can provide a date.

@Dannyb48
Copy link
Contributor

Dannyb48 commented Oct 1, 2019

I think we should at least test using develop branch or the internal dev rpm to test out the Linchpin Beaker provisioning. To at least make sure the Linchpin python 3 compatible side works consuming the python beaker 3 client apis? That way we can catch things early before beaker 27 is tagged and released?

@StykMartin
Copy link

For your testing purposes definitely yes! If you want to use internal dev RPM feel free to reach me out. I'm creating new RPM for every new commit merged to develop branch

@samvarankashyap
Copy link
Contributor Author

@StykMartin :
Quick question ,
does beaker 26.5 include python3 support?

@StykMartin
Copy link

Successfully it does not

@samvarankashyap
Copy link
Contributor Author

@StykMartin Any update on the release date of beaker 27?

@Dannyb48
Copy link
Contributor

so far my testing with the internal dev beaker rpm on RHEL 8 (Red Hat Enterprise Linux release 8.0 (Ootpa)) has been successful using linchpin 1.8.2 and carbon 1.4.1.

The minimal bkr parameters I passed in my scenario
`

      arch: x86_64
      distro: RHEL-7.6
      variant: Server
      whiteboard: {{ BKR_WHITEBOARD }}
      jobgroup: {{ BKR_JOBGROUP }}
      username: {{ BKR_USERNAME }}
      password: {{ BKR_PASSWORD }}
      ssh_key: keys/{{ BKR_KEYPAIR }}
      host_requires_options: 
        - "force = {{ BKR_HOST_FQDN }}"

The only issue I ran into was that the carbon framework had an issue with GSSAPI but that was because of we were using an older version of paramiko, 2.4.2, had to upgrade paramiko 2.6.0 which has full support for GSSAPI.

I will test with the develop branch of linchpin next. Not I have been driving this from carbon not Linchpin CLI.

@StykMartin I think you've mentioned in the beaker-user list that if I have a RHEL 7 w/python3 and I try to install the beaker27 client rpm, this isn't supported? or won't work?

@StykMartin
Copy link

@Dannyb48 at this moment RHEL 7 client is built for Python 2 only.
We are not providing python 3 support (yet) in RHEL 7.

@Dannyb48
Copy link
Contributor

@StykMartin Sounds good thanks!

@Dannyb48
Copy link
Contributor

@samvarankashyap
My intial testing of both linchpin 1.8.2 and linchpin develop on RHEL8 and Fedora30 with the beaker common/clients 27 build 107 rpm from the internal beakerrepo download site have proven successful to provision and destroy a single beaker resource through carbon using the simple pinfile generated by carbon below.

The only real gotcha was from carbon side, where we had to update paramiko 2.4.2 to paramiko 2.6.0 to support the new beaker GSSAPI requirement.

I did have issues trying to install beaker from the github Client sub-directory issues with finding python dependencies.

Although I do question, based on Martin's answer, if we need to add another task to this playbook? One that installs the bkr client 27 install on systems that support it, i.e. RHEL8/Fedora30 and leave this existing task for systems <RHEL8/Fedora30?

carbon:
  layout:
    inventory_layout:
      hosts:
        node:
          count: 1
          host_groups:
          - hosts
          - client
      vars:
        ansible_ssh_private_key_file: keys/demo
        ansible_user: root
        hostname: db2-carbon-beaker-node
  topology:
    resource_groups:
    - resource_definitions:
      - job_group: ci-ops-central
        recipesets:
        - arch: x86_64
          count: 1
          distro: RHEL-7.6
          hostrequires:
          - force: dell-per220-02.cci.lab.eng.bos.redhat.com
          name: db2-carbon-beaker-node
          ssh_key_file:
          - demo.pub
          variant: Server
        role: bkr_server
        ssh_keys_path: /home/fedora/cbn/e2e-acceptance-tests/keys
        whiteboard: py3-beaker-testing
      resource_group_name: carbon
      resource_group_type: beaker
    topology_name: carbon

Copy link
Contributor

@Dannyb48 Dannyb48 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Based on Martin's comments, it looks like right now the initial support for Beaker 27 client python 3 is Fedora 30 systems and RHEL 8. Support for RHEL 7 python 3 is coming later on.

Should we keep the original tasks for systems <RHEL8/Fedora 30 to install beaker client < 27 and add a new task for RHEL8/Fedora30 to install the beaker client 27? That way the correct Beaker version is installed appropriately until Beaker 27 for python 3 is supported on RHEL 7 systems?

@samvarankashyap
Copy link
Contributor Author

samvarankashyap commented Oct 22, 2019

@Dannyb48
I agree with you.
We can maintain multiple tasks based on operating systems.
Currently, we do test on fedora30, centos7 and fedora29.
I will update the task accordingly

@samvarankashyap
Copy link
Contributor Author

@StykMartin
It would be great if we can get a tentative release date for the beaker 27 release.

@StykMartin
Copy link

I think in 3 weeks we have maintenance window to push updates.
So I'm expecting around this time we will push 27.

@samvarankashyap samvarankashyap modified the milestones: v1.9.0, v1.9.1 Oct 28, 2019
@Dannyb48
Copy link
Contributor

FYI on RHEL 8 - when using the install from github method, we need to make sure that the python3-gssapi rpm bindings were installed before the python gssapi package would install.

Did not have this problem when the beaker-client was installed using the rpm method.

@samvarankashyap
Copy link
Contributor Author

@Dannyb48
I am planning to add rhel7 rhel8 support in upcoming release of linchpin
ref: #1197 #1445
I will keep that in mind before I do that.
Thanks.

@StykMartin
Copy link

Working on release notes. This week we will tag RC

@samvarankashyap samvarankashyap removed this from the v1.9.1 milestone Dec 2, 2019
@samvarankashyap
Copy link
Contributor Author

@StykMartin
I see there is a beaker-client rpm on fedora 30 repos.
Are there any plans pushing beaker-client to PyPI anytime soon?

@StykMartin
Copy link

StykMartin commented Dec 4, 2019

@samvarankashyap beaker-client 27.0
70165887-f4d11b80-16c3-11ea-88

@samvarankashyap
Copy link
Contributor Author

@StykMartin Awesome news.
Thank you very much for the update 👍

@StykMartin
Copy link

🎉 🎉 🎉
Sorry for prolonging this release. We had many problems to solve.

- 'bottle'
loop_control:
loop_var: bkr_pkg
name: ['git+https://github.com/beaker-project/beaker.git@develop#subdirectory=Client/', 'python-gssapi', 'bottle']

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This can be replaced with the latest 27.0 Beaker release.

@@ -46,7 +46,7 @@
tests_require=["pytest<=4.4.0", "nose", "mock", "coverage", "flake8"],
extras_require={
'krbV': ["python-krbV"],
'beaker': ['beaker-client>=23.3', 'python-krbV'],
'beaker': ['beaker-client>=27.0', 'python-gssapi', 'bottle'],

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do you need bottle?
It is definitely not part of Beaker requirements.

@samvarankashyap
Copy link
Contributor Author

[merge]

@adl-bot adl-bot merged commit f330110 into CentOS-PaaS-SIG:develop Dec 9, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants